import { getImage, getPage } from '../../utils/config';
import api from '../../utils/api';
import { extend, http, storage, $toast, urlEncode } from '../../utils/utils';
import wxApi from '../../utils/wxApi';
const app = getApp(); 

Page({
  /**
  * 页面的初始数据
  */
  data: {
    getImage: getImage,
    getPage: getPage,
    loading: 0,
    keyword:"",
    goodsList: [],
    pageIndex: 1,
    pages: 0,
    
    abnor: false,
    loadmore: false,
    loaddone: false
  },
  
  /**
       * 请求数据 
       */
  httpGetGoods(callback, loadStyle = true) {
    // //获取商品
    http.post(api.default, {
      data: {
        action: 'GetTopProducts',
        pagesize: 20,
        keyword:this.data.keyword,
        pageindex: this.data.pageIndex,
      }
    }, loadStyle).then(res => {
      const goodsData = res.data.data;
      const newGoodsData = [].concat(this.data.goodsList, goodsData.list);
      this.setData({
        loaddone: this.data.pageIndex === goodsData.pages ? true : false,
        abnor: newGoodsData.length ? false : true,
        goodsList: newGoodsData,
        pages: goodsData.pages,
      })
    }).finally(() => {
      callback && callback();
    })
  },

  /**
       * 跳转商品页
       */
  pageGoodsTap(e) {
    const data = e.currentTarget.dataset || e.target.dataset;
    if (data.id) {
      wxApi.navigateTo(getPage.goods, {
        id: data.id
      })
    }
  },
    
  /**
   * 监听页面滚动
   */
  onPageScroll() {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    //判断入口是否带参数
    if (options && JSON.stringify(options) !== '{}') {
      this.setData({
        keyword: options.keyword
      });
    }
    //首次获取商品
      this.httpGetGoods(() => {
        this.setData({
          loading: 1
        })
      }, false);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    //未请求完且未在加载中
    console.log(this.data.loaddone)
    console.log(this.data.loadmore)
    if (!this.data.loaddone && !this.data.loadmore) {
      //显示加载效果
      wx.showNavigationBarLoading();
      this.setData({
        loadmore: true
      })
      //统计页数
      const pages = this.data.pages;
      let pagesCount = this.data.pageIndex;
      if (pagesCount < pages) {
        //请求页码
        pagesCount++;
        this.setData({
          pageIndex: pagesCount,
        })
        //加载数据
        this.httpGetGoods(() => {
          //不管结果如何关闭导航栏加载效果
          wx.hideNavigationBarLoading();
          this.setData({
            loadmore: false
          })
        }, false);
      } else {
        //关闭加载效果
        wx.hideNavigationBarLoading();
        this.setData({
          loadmore: false,
          loaddone: true,
        })
      }
    }
  }

})